package com.start.platform.core.entity;

import com.alibaba.fastjson2.JSONArray;
import com.baomidou.mybatisplus.annotation.TableName;
import com.start.common.constant.StartConstant;
import com.start.common.dic.DictMapper;
import com.start.common.entity.StartBaseUser;
import io.swagger.v3.oas.annotations.media.Schema;

import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDateTime;


/**
 * 第三方平台用户信息
 *
 * @author gxl
 * @email ${email}
 * @date 2021-03-25 09:12:51
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("start_platform_user")
 @Schema(name="StartPlatformUserEntity")
public class StartPlatformUserEntity extends StartBaseUser implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 手机
     */
     @Schema(name="手机")
    @DictMapper("手机")
    private String phone;

     @Schema(name="邮箱")
    @DictMapper("手机")
    private String email;

    @DictMapper("身份证号码")
    private String idCard;

     @Schema(name="身份证号码照片")
    private JSONArray idCardImg;

    /**
     * 住址
     */
     @Schema(name="住址")
    @DictMapper("住址")
    private String address;


    /**
     * 出生日期
     */
     @Schema(name="出生日期")
    @DictMapper("出生日期")
    private LocalDateTime birthday;


    /**
     * 密码
     */
     @Schema(name="密码")
    private String password;


    /**
     * 是否自己修改过个人信息 0 未修改 1 已修改
     */
     @Schema(name="是否自己修改过个人信息 0 未修改 1 已修改")
    private Integer selfModifyState;


    /**
     * 最后一次登录时间
     */
     @Schema(name="最后一次登录时间")
    private LocalDateTime lastLoginTime;


    /**
     * 获取用户key 标准 用户体系:用户id 如：admin_user:123456dasfd
     *
     * @return
     */
    @Override
    public String getStartUserKey() {
        return StartConstant.ClientUserType.PLATFORM_USER + ":" + getId();
    }

    /**
     * 获取用户体系
     *
     * @return
     */
    @Override
    public String getStartUserType() {
        return StartConstant.ClientUserType.PLATFORM_USER;
    }
}
